home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995…tember: Reference Library / Dev.CD Sep 95 RL / Dev.CD Sep 95 RL.toast / mac / Technical Documentation / develop / develop Issue 15 code / 3D Interface / Demo3D / Demo3D.r < prev    next >
Encoding:
Text File  |  1994-10-21  |  10.5 KB  |  420 lines  |  [TEXT/MPS ]

  1. //----------------------------------------------------------------------------------------
  2. //    File:        Demo3D.cp
  3. //
  4. //    Contains:    3D drawing demo program
  5. //
  6. //    Written by:    Jamie Osborne
  7. //                 Adapted for 3.1.1 by Jeroen Schalk
  8. //
  9. //    Copyright:    © 1992-1994 by Apple Computer, Inc.
  10. //----------------------------------------------------------------------------------------
  11.  
  12.  
  13. // • Auto-Include the requirements for this source
  14. #ifndef __TYPES.R__
  15. #include "Types.r"
  16. #endif
  17.  
  18. #ifndef __MacAppTypes__
  19. #include "MacAppTypes.r"
  20. #endif
  21.  
  22. #ifndef __ViewTypes__
  23. #include "ViewTypes.r"
  24. #endif
  25.  
  26. #ifndef __BalloonTypes__
  27. #include "BalloonTypes.r"
  28. #endif
  29.  
  30. #if qDebug | qPerform
  31. include "Debug.rsrc" not 'ckid';
  32. #endif
  33. include "MacApp.rsrc" not 'ckid';
  34. include "Dialog.rsrc" not 'ckid';
  35.  
  36. #ifndef __FloatWindow__
  37. #include "FloatWindow.r"
  38. #endif
  39.  
  40. include "Demo3D.Views";
  41.  
  42. #if qPowerPC
  43.  
  44. #include "CodeFragmentTypes.r"
  45.  
  46. resource 'cfrg' (0) {
  47.    {
  48.         kPowerPC,
  49.         kFullLib,
  50.         kNoVersionNum,
  51.         kNoVersionNum,
  52.         0,
  53.         0,
  54.         kIsApp,
  55.         kOnDiskFlat,
  56.         kZeroOffset,
  57.         kWholeFork,
  58.         "Demo3D"
  59.    }
  60. };
  61.  
  62. #else
  63.  
  64. #if !qNoCode
  65. include $$Shell("ObjApp")$$Shell("XAppName") 'CODE';
  66. #endif
  67. #endif
  68.  
  69. #define kSignature            'DE3D'            // Application Signature
  70.  
  71. // Resource IDs
  72. #define c3DDrawingWind  1001
  73. #define c3DDrawingProcWind  1002
  74.  
  75. #define kStrings 2000
  76.  
  77. #define mWindows            4        // ID of the "Windows" menu
  78.  
  79. /* Command numbers */
  80.  
  81.  
  82. resource 'res!' (256,
  83. #if qNames
  84.     "Demo3D's resident segments",
  85. #endif
  86.     purgeable) {
  87.     {    "ARes";
  88.         "A3DRes";
  89.         "A3DControlRes";
  90.     };
  91. };
  92.  
  93. resource 'seg!' (256, purgeable) {
  94.     {
  95.         "ARes";
  96.         "GNonRes";
  97.         "GClipboard";
  98.         "GClose";
  99.         "GDoCommand";
  100.         "GOpen";
  101.         "GSelCommand";
  102.         "BBNonRes";
  103.         "BBOpen";
  104.         "GNonRes2";
  105.         "GReadResource";
  106.         "TESelCommand";
  107.         "SANELIB";
  108.     }
  109. };
  110.  
  111. resource 'SIZE' (-1) {
  112.     saveScreen,
  113.     acceptSuspendResumeEvents,
  114.     enableOptionSwitch,
  115.     canBackground,
  116.     doesActivateOnFGSwitch,
  117.     backgroundAndForeground,
  118.     dontGetFrontClicks,
  119.     ignoreAppDiedEvents,
  120.     is32BitCompatible,
  121.     isHighLevelEventAware,
  122.     localAndRemoteHLEvents,
  123.     notStationeryAware,
  124.     reserved,
  125.     reserved,
  126.     reserved,
  127.     reserved,
  128. #if qModelFarCode
  129.     675 * 1024,
  130.     625 * 1024,
  131. #elif qDebug
  132.     600 * 1024,
  133.     575 * 1024
  134. #else
  135.     450 * 1024,
  136.     400 * 1024
  137. #endif
  138. };
  139.  
  140. resource 'DITL' (phAboutApp, purgeable) {
  141.      {
  142. /* [1] */    {160, 182, 180, 262}, Button { enabled, "OK" };
  143. /* [2] */    {8, 70, 152, 316}, StaticText { disabled,
  144.     "3D Drawing with MacApp Demo."
  145.     "\n\nBy Jamie Osborne "
  146.     " © 1994 Apple Computer, Inc."};
  147. /* [3] */    {10, 20, 42, 52}, Icon { disabled, 1 }
  148.     }
  149. };
  150.  
  151. resource 'MBAR' (kMBarDisplayed,
  152. #if qNames
  153. "kMBarDisplayed",
  154. #endif
  155. nonpurgeable) {
  156.     {mApple; mFile; mEdit; mWindows}
  157. };
  158.  
  159.  
  160. include "Defaults.rsrc"  'ALRT' (phAboutApp);    // Grab the default about box
  161.  
  162. include "Defaults.rsrc" 'CMNU' (mApple);        // Grab the default Apple menu
  163.  
  164. resource 'CMNU' (mFile,
  165. #if qNames
  166. "mFile",
  167. #endif
  168. nonpurgeable) {
  169.     mFile,
  170.     textMenuProc,
  171.     EnablingManagedByMacApp,
  172.     enabled,
  173.     "File",
  174.     {
  175.     "Close",            noIcon, "W",    noMark, plain, cClose;
  176.     "Quit",                noIcon, "Q",    noMark, plain, cQuit
  177.     }
  178. };
  179.  
  180. include "Defaults.rsrc" 'CMNU' (mEdit);        // Grab the default Edit menus
  181.  
  182. resource 'CMNU' (mWindows,
  183. #if qNames
  184. "mWindows",
  185. #endif
  186. nonpurgeable) {
  187.     mWindows,
  188.     textMenuProc,
  189.     EnablingManagedByMacApp,
  190.     enabled,
  191.     "Windows",
  192.      {
  193. /* [1] */    "Show Template 3D Drawing",            noIcon, noKey, noMark, plain, c3DDrawingWind;
  194. /* [2] */    "Show Procedural 3D Drawing",        noIcon, noKey, noMark, plain, c3DDrawingProcWind;
  195.     }
  196. };
  197.  
  198.  
  199. include "Defaults.rsrc" 'CMNU' (mBuzzwords);    // Get the default buzzwords menu
  200.  
  201.  
  202. type kSignature as 'STR ';
  203. resource kSignature (0,
  204. #if qNames
  205. "Signature",
  206. #endif
  207.     purgeable) {
  208.     "Demo3D  ©Apple Computer, Inc. 1994"
  209. };
  210.  
  211. resource 'FREF' (128,
  212. #if qNames
  213. "Demo3D Application",
  214. #endif
  215.     purgeable) {
  216.     'APPL',
  217.     0,
  218.     ""
  219. };
  220.  
  221. resource 'BNDL' (128,
  222. #if qNames
  223. "Demo3D",
  224. #endif
  225.     purgeable) {
  226.     kSignature,
  227.     0,
  228.         {
  229.         'ICN#',
  230.             {
  231.             0, 128,
  232.             },
  233.         'FREF',
  234.             {
  235.             0, 128,
  236.             }
  237.         }
  238. };
  239.  
  240. // Get the default Version resources
  241. include "Defaults.rsrc"  'vers' (1);        // Application or file specific
  242. include "Defaults.rsrc"  'vers' (2);        // Overall package
  243.  
  244.  
  245. resource 'STR#' (kStrings,
  246. #if qNames
  247. "Strings",
  248. #endif
  249. purgeable) {
  250.     {
  251.         "This window was created procedurally.";
  252.         "Click this to show a window with improper use of a gray background:";
  253.         "Edit Text Field 1:";
  254.     }
  255. };
  256.  
  257. resource 'ICN#' (128, "Demo3D Family", purgeable) {
  258. {    /* array: 2 elements */
  259.     /* [1] */
  260.     $"0000 0000 007F 00FE 0081 0102 0080 8203"
  261.     $"0100 8403 0100 4803 0200 5003 0200 2003"
  262.     $"0400 0003 0400 0003 0800 0003 0800 0003"
  263.     $"1000 0003 11FF FFE3 2100 0023 217F FFA3"
  264.     $"4140 00A3 4140 7EA3 815B 42A3 FD54 7EAF"
  265.     $"7D40 00AF 7D40 00AF 0140 00A0 014E 1CA0"
  266.     $"0151 22A0 014E 1CA0 0140 00A0 017F FFA0"
  267.     $"0100 0020 01FF FFE0",
  268.     /* [2] */
  269.     $"0000 0000 00FF 01FE 00FF 83FE 01FF 87FF"
  270.     $"01FF CFFF 03FF DFFF 03FF FFFF 07FF FFFF"
  271.     $"07FF FFFF 0FFF FFFF 0FFF FFFF 1FFF FFFF"
  272.     $"1FFF FFFF 3FFF FFFF 3FFF FFFF 7FFF FFFF"
  273.     $"7FFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF"
  274.     $"7FFF FFFF 7FFF FFFF 01FF FFF0 01FF FFF0"
  275.     $"01FF FFF0 01FF FFF0 01FF FFF0 01FF FFF0"
  276.     $"01FF FFF0 01FF FFF0 00FF FFF0"
  277. }
  278. };
  279.  
  280. resource 'ics#' (128, "Demo3D Family", purgeable) {
  281. {    /* array: 2 elements */
  282.     /* [1] */
  283.     $"0707 0489 0851 0821 1001 1001 2FFD 2805"
  284.     $"4BF5 4A15 EA15 6A15 0BF4 0804 0FFC",
  285.     /* [2] */
  286.     $"078F 0FDF 0FFF 1FFF 1FFF 3FFF 3FFF 7FFF"
  287.     $"7FFF FFFF FFFF 7FFF 0FFE 0FFE 0FFE 07FE"
  288. }
  289. };
  290.  
  291. resource 'ics4' (128, "Demo3D Family", purgeable) {
  292.     $"0000 0666 7000 7666 0000 7677 6707 6776"
  293.     $"0000 6777 7676 7776 0007 6777 7767 7776"
  294.     $"0006 7777 7777 7776 0076 7777 7777 7776"
  295.     $"0067 FFFF FFFF FF76 0767 FCCC CCCC CFD6"
  296.     $"0677 FCFF FFFF CFD6 7677 FCF0 000F CFD6"
  297.     $"6666 FCF0 000F CFD6 0DDD FCF0 000F CFDD"
  298.     $"0000 FCFF FFFF CFD0 0000 FCCC CCCC CFD0"
  299.     $"0000 FFFF FFFF FFD0 0000 0DDD DDDD DDD0"
  300. };
  301.  
  302. resource 'ics8' (128, "Demo3D Family", purgeable) {
  303.     $"0000 0000 00EC ECEC C000 0000 C0EC ECEC"
  304.     $"0000 0000 C0EC C0C0 ECC0 00C0 ECC0 C0EC"
  305.     $"0000 0000 ECC0 C0C0 C0EC C0EC C0C0 C0EC"
  306.     $"0000 00C0 ECC0 C0C0 C0C0 ECC0 C0C0 C0EC"
  307.     $"0000 00EC C0C0 C0C0 C0C0 C0C0 C0C0 C0EC"
  308.     $"0000 C0EC C0C0 C0C0 C0C0 C0C0 C0C0 C0EC"
  309.     $"0000 ECC0 FFFF FFFF FFFF FFFF FFFF C0EC"
  310.     $"00C0 ECC0 FFF7 F7F7 F7F7 F7F7 F7FF FAEC"
  311.     $"00EC C0C0 FFF7 FFFF FFFF FFFF F7FF FAEC"
  312.     $"C0EC C0C0 FFF7 FF00 0000 00FF F7FF FAEC"
  313.     $"ECEC ECEC FFF7 FF00 0000 00FF F7FF FAEC"
  314.     $"00FA FAFA FFF7 FF00 0000 00FF F7FF FAFA"
  315.     $"0000 0000 FFF7 FFFF FFFF FFFF F7FF FA00"
  316.     $"0000 0000 FFF7 F7F7 F7F7 F7F7 F7FF FA00"
  317.     $"0000 0000 FFFF FFFF FFFF FFFF FFFF FA00"
  318.     $"0000 0000 00FA FAFA FAFA FAFA FAFA FA"
  319. };
  320.  
  321. resource 'icl4' (128, "Demo3D Family", purgeable) {
  322.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  323.     $"0000 0000 7666 6666 0000 0007 6666 6660"
  324.     $"0000 0000 6777 7776 7000 0076 7777 7760"
  325.     $"0000 0007 6777 7777 6000 0767 7777 776D"
  326.     $"0000 0006 7777 7777 6700 7677 7777 776D"
  327.     $"0000 0076 7777 7777 7607 6777 7777 776D"
  328.     $"0000 0067 7777 7777 7676 7777 7777 776D"
  329.     $"0000 0767 7777 7777 7767 7777 7777 776D"
  330.     $"0000 0677 7777 7777 7777 7777 7777 776D"
  331.     $"0000 7677 7777 7777 7777 7777 7777 776D"
  332.     $"0000 6777 7777 7777 7777 7777 7777 776D"
  333.     $"0007 6777 7777 7777 7777 7777 7777 776D"
  334.     $"0006 7777 7777 7777 7777 7777 7777 776D"
  335.     $"0076 777F FFFF FFFF FFFF FFFF FFF7 776D"
  336.     $"0067 777F CCCC CCCC CCCC CCCC CCFD 776D"
  337.     $"0767 777F CFFF FFFF FFFF FFFF FCFD 776D"
  338.     $"0677 777F CF00 0000 0000 0000 FCFD 776D"
  339.     $"7677 777F CF06 6660 6660 0600 FCFD 776D"
  340.     $"6777 777F CF00 0000 0000 0000 FCFD 776D"
  341.     $"6666 666F CF00 0000 0666 6660 FCFD 666D"
  342.     $"0DDD DDDF CF0F F0FF 0600 0060 FCFD DDDD"
  343.     $"0DDD DDDF CF0F 0F00 0666 6660 FCFD DDDD"
  344.     $"0000 000F CF00 0000 0000 0000 FCFD 0000"
  345.     $"0000 000F CF00 3330 0003 3300 FCFD 0000"
  346.     $"0000 000F CF03 0003 0030 0030 FCFD 0000"
  347.     $"0000 000F CF00 3330 0003 3300 FCFD 0000"
  348.     $"0000 000F CF00 0000 0000 0000 FCFD 0000"
  349.     $"0000 000F CFFF FFFF FFFF FFFF FCFD 0000"
  350.     $"0000 000F CCCC CCCC CCCC CCCC CCFD 0000"
  351.     $"0000 000F FFFF FFFF FFFF FFFF FFFD 0000"
  352.     $"0000 0000 DDDD DDDD DDDD DDDD DDDD"
  353. };
  354.  
  355. resource 'icl8' (128, "Demo3D Family", purgeable) {
  356.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  357.     $"0000 0000 0000 0000 0000 0000 0000 0000"
  358.     $"0000 0000 0000 0000 C0EC ECEC ECEC ECEC"
  359.     $"0000 0000 0000 00C0 ECEC ECEC ECEC EC00"
  360.     $"0000 0000 0000 0000 ECC0 C0C0 C0C0 C0EC"
  361.     $"C000 0000 0000 C0EC C0C0 C0C0 C0C0 EC00"
  362.     $"0000 0000 0000 00C0 ECC0 C0C0 C0C0 C0C0"
  363.     $"EC00 0000 00C0 ECC0 C0C0 C0C0 C0C0 ECFA"
  364.     $"0000 0000 0000 00EC C0C0 C0C0 C0C0 C0C0"
  365.     $"ECC0 0000 C0EC C0C0 C0C0 C0C0 C0C0 ECFA"
  366.     $"0000 0000 0000 C0EC C0C0 C0C0 C0C0 C0C0"
  367.     $"C0EC 00C0 ECC0 C0C0 C0C0 C0C0 C0C0 ECFA"
  368.     $"0000 0000 0000 ECC0 C0C0 C0C0 C0C0 C0C0"
  369.     $"C0EC C0EC C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  370.     $"0000 0000 00C0 ECC0 C0C0 C0C0 C0C0 C0C0"
  371.     $"C0C0 ECC0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  372.     $"0000 0000 00EC C0C0 C0C0 C0C0 C0C0 C0C0"
  373.     $"C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  374.     $"0000 0000 C0EC C0C0 C0C0 C0C0 C0C0 C0C0"
  375.     $"C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  376.     $"0000 0000 ECC0 C0C0 C0C0 C0C0 C0C0 C0C0"
  377.     $"C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  378.     $"0000 00C0 ECC0 C0C0 C0C0 C0C0 C0C0 C0C0"
  379.     $"C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  380.     $"0000 00EC C0C0 C0C0 C0C0 C0C0 C0C0 C0C0"
  381.     $"C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ECFA"
  382.     $"0000 C0EC C0C0 C0FF FFFF FFFF FFFF FFFF"
  383.     $"FFFF FFFF FFFF FFFF FFFF FFC0 C0C0 ECFA"
  384.     $"0000 ECC0 C0C0 C0FF F7F7 F7F7 F7F7 F7F7"
  385.     $"F7F7 F7F7 F7F7 F7F7 F7F7 FFFA C0C0 ECFA"
  386.     $"00C0 ECC0 C0C0 C0FF F7FF FFFF FFFF FFFF"
  387.     $"FFFF FFFF FFFF FFFF FFF7 FFFA C0C0 ECFA"
  388.     $"00EC C0C0 C0C0 C0FF F7FF 0000 0000 0000"
  389.     $"0000 0000 0000 0000 FFF7 FFFA C0C0 ECFA"
  390.     $"C0EC C0C0 C0C0 C0FF F7FF 00D2 D2D2 D200"
  391.     $"D2D2 D200 00D2 0000 FFF7 FFFA C0C0 ECFA"
  392.     $"ECC0 C0C0 C0C0 C0FF F7FF 0000 0000 0000"
  393.     $"0000 0000 0000 0000 FFF7 FFFA C0C0 ECFA"
  394.     $"ECEC ECEC ECEC ECFF F7FF 0000 0000 0000"
  395.     $"00D2 D2D2 D2D2 D200 FFF7 FFFA ECEC ECFA"
  396.     $"00FA FAFA FAFA FAFF F7FF 00FF FF00 FFFF"
  397.     $"00D2 0000 0000 D200 FFF7 FFFA FAFA FAFA"
  398.     $"00FA FAFA FAFA FAFF F7FF 00FF 00FF 0000"
  399.     $"00D2 D2D2 D2D2 D200 FFF7 FFFA FAFA FAFA"
  400.     $"0000 0000 0000 00FF F7FF 0000 0000 0000"
  401.     $"0000 0000 0000 0000 FFF7 FFFA 0000 0000"
  402.     $"0000 0000 0000 00FF F7FF 0000 4747 4700"
  403.     $"0000 0047 4747 0000 FFF7 FFFA 0000 0000"
  404.     $"0000 0000 0000 00FF F7FF 0047 0000 0047"
  405.     $"0000 4700 0000 4700 FFF7 FFFA 0000 0000"
  406.     $"0000 0000 0000 00FF F7FF 0000 4747 4700"
  407.     $"0000 0047 4747 0000 FFF7 FFFA 0000 0000"
  408.     $"0000 0000 0000 00FF F7FF 0000 0000 0000"
  409.     $"0000 0000 0000 0000 FFF7 FFFA 0000 0000"
  410.     $"0000 0000 0000 00FF F7FF FFFF FFFF FFFF"
  411.     $"FFFF FFFF FFFF FFFF FFF7 FFFA 0000 0000"
  412.     $"0000 0000 0000 00FF F7F7 F7F7 F7F7 F7F7"
  413.     $"F7F7 F7F7 F7F7 F7F7 F7F7 FFFA 0000 0000"
  414.     $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF"
  415.     $"FFFF FFFF FFFF FFFF FFFF FFFA 0000 0000"
  416.     $"0000 0000 0000 0000 FAFA FAFA FAFA FAFA"
  417.     $"FAFA FAFA FAFA FAFA FAFA FAFA"
  418. };
  419.  
  420.